package com.aterrizar.persistencia.servicios;


import java.util.List;

import org.joda.time.DateTime;

import com.aterrizar.dominio.reservacion.asientos.Asiento;
import com.aterrizar.dominio.reservacion.viajes.Vuelo;
import com.aterrizar.dominio.usuarios.Usuario;
import com.aterrizar.persistencia.daos.SessionManager;
import com.aterrizar.persistencia.filtros.Filtrar;



public class UsuarioManager {
	
	public void crearUsuario(String username, String password, String nombre, String apellido, String email, DateTime  fechaNac) {
		SessionManager.runInSession(new CrearUsuario(username, password,nombre, apellido, email, fechaNac));
	}
	
	public void reservarVueloUsuario(Integer id, List<Integer> idAsientos){
		SessionManager.runInSession(new ReservarVueloUsuario(id, idAsientos));
	}
	
	public List<Asiento> asientosLibresDelTramo(Integer idTramo) {
		return SessionManager.runInSession(new AsientosLibresDeTramo(idTramo));
	}
	
	public Usuario consultarUsuario(Integer id){
		return SessionManager.runInSession(new ConsultarUsuario(id));
	}
	
	public List<Vuelo> consultarVuelos(){
		return SessionManager.runInSession(new ConsultarVuelos());
	}

	public List<Vuelo> filtro(Filtrar f, Integer id){
		SessionManager.runInSession(new AgregarFiltro(f,id));
		return SessionManager.runInSession(new ConFiltro(f));
	}
	
	public List<Vuelo> ejecutarUltimoFiltro(Integer id){
		Filtrar filtro =  SessionManager.runInSession(new EjecutarUltimoFiltro(id));
		return SessionManager.runInSession(new ConFiltro(filtro));
	}

}
